脆弱性診断で利用するログイン情報をレコーディングする[Burp Suite]
こんにちは、臼田です。
弊社では脆弱性診断ツールとして「F-Secure Radar」を取り扱っていますが、このような機械診断のツールでWebアプリケーションを診断する際に、ログインの方法をツールに教えてあげる必要があります。
例えば、以下のような項目が必要になります。
- ログインページのURL
- ユーザ名・パスワード
- ログインが正常に完了したときの動作
- ログインの維持に使うcookie
- などなど
機械的にログインするために必要な情報は、結構設定するのが面倒です。
F-Secure Radarでは、これを簡単にするために「レコーディングファイル」をインポートすることができます。
今回はレコーディングファイルの概要と取得方法を説明します。
レコーディングファイルとは
レコーディングファイルとは、Webアプリケーションへのログイン方法を文字通り「レコーディング(記録)」したファイルになります。
通常ではブラウザからWebページへ直接アクセスしますが、レコーディングを取得するにはレコーディング可能なツールをプロキシとして経由してWebページにアクセスする必要があります。
F-Secure Radarではいくつかのツールのレコーディングファイルをサポートしていますが、今回は「Burp Suite」というツールを利用します。
Burp Suiteインストール
公式サイトはこちらです
「Professional」と「Free Edition」がありますが、レコーディングファイルの取得だけの場合はFree Editionで問題ありません。
OS毎適切なものが表示されると思うので、ダウンロードしてインストールしてください。
確認時のバージョンは「Burp Suite Free Edition v1.7.27」です
プロキシの設定
ブラウザの通信をBurp Suiteに向ける必要があるため、プロキシの設定をします。
様々な方法がありますが、今回はGoogle Chrome上で手軽に操作できるFoxyProxyのエクステンションを利用して説明します。
ちなみに、同様のものがFirefox用でもあります。
確認時のバージョンは「FoxyProxy Standard 3.0.7.1」です。
エクステンションの追加
FoxyProxyにアクセスし「CHROMEに追加」ボタンから追加します。
「拡張機能を追加」を押します。
設定
エクステンションが追加されたら、ブラウザ右上のアイコンを押し、「Options」へ移動します。
「Add New Proxy」から新しいプロキシ設定を追加します。
「General」タブから「Proxy Name」を適当に設定します。(今回はBurp)
「Proxy Details」タブから「IP Address」に127.0.0.1
、「Port」に8080
を選択して「Save」します。(他のツール等と重複する場合には別のPortでも大丈夫です)
設定された項目が表示されていることを確認します。
これで、ブラウザの通信経路をプロキシ(127.0.0.1:8080)へ向ける準備が整いました。
ただ、現状では通常通りプロキシを経由しないで通信する状態です。
レコーディングファイルの取得
プロキシの待ち受け設定
まずはBurp Suiteを起動します。
「Temporary Project」を選択したまま「Next」を押します。(繰り返し利用する構成はプロジェクトとすることができますが今回は一時利用のため省略します)
「Use Burp defaults」を選択したまま「Start Burp」を押します。(個別の設定ファイルを読み込むことが可能ですが省略します)
起動したら「Proxy -> Options」タブへアクセスしてプロキシの設定が127.0.0.1:8080
となっていることを確認します。
Burp Suiteのプロキシ機能でローカルの8080ポートで待ち受けている状態になります。
FoxyProxyで別ポートを設定している場合には、「Edit」から変更して下さい。
続いて「Proxy -> Inspect」タブへ移動し「Inspect is on」となっているボタンをクリックし、「Inspect is off」にします。
これは、プロキシを通るトラフィックを止めて内容を編集するための機能ですが、今回はレコーディングのみのためそのまま通過させるためにoffにします。
以上でプロキシの待ち受け設定は完了です。「Target -> Site map」タブにてアクセスが表示されるのを待ちます。
ブラウザの通信先をプロキシに変更
FoxyProxyの設定によりブラウザの通信先をBurp Suiteに向けます。
Chrome右上のFoxyProxyのアイコンを選択し、「Use Proxy Burp(設定名) for all URLs」を選択します。
選択すると、エクステンションのアイコンが青くなります。
これでブラウザからの全ての通信がBurp Suiteを経由するようになりました。
レコーディング実施
それでは本番です。
ブラウザから診断対象とするWebページのログインページにアクセスします。今回はwordpressを例とします。
この段階で、Burp SuiteにはログインページのURLへのアクセスが記録されています。
続いて、ブラウザから診断に利用するユーザ名、パスワードを入力してログインします。
ログインが完了したら、FoxyProxyでプロキシを経由するのを止めます。
エクステンションのFoxyProxyのアイコンから「Disable FoxyProxy」を選択します。
これで、ブラウザからBurp Suiteを経由した通信は終わり、直接の通信に戻ります。
Burp Suiteを確認します。
先程ログインを行った際の情報が、ログインページ(http://<target_ip> -> wordpress -> wp-login.php)に記録されていることが確認できます。
今回の場合は、ログインページ(wp-login.php)へのGETとログイン情報を送信しているPOST等について記録されています。
この情報を保存します。左カラムのログインページ部分(今回はwp-login.php)を右クリックして「Save selected items」を選びます。
適当なフォルダやファイル名を入力して「保存」を押します。この際、拡張子に「.xml」を追記して下さい。(自動で付加されません)
これで、レコーディングファイルの取得は完了です。
まとめ
説明は長くなりましたが、実際に行っている操作は非常に簡単かと思います。
少なくとも、ログインのための情報を手動で揃えることはあまり現実的ではありません。
ツールで簡単に取得して、良い脆弱性診断ライフを!